// 入口函数
$(function () {
  // 1. 校验自定义规则
  // layui表单中的表单验证方法
  layui.form.verify({
    nickname: [/^[\S]{1,10}$/, '昵称必须1到10位，且不能出现空格']
  })

  // 2. 发起ajax，渲染用户信息，封装成函数
  //  函数不调用，不执行
  initUserInfo()

  function initUserInfo () {
    axios({
      method: 'get',
      url: '/my/userinfo'
    }).then(res => {
      //成功回调
      //   console.log(res.data)

      if (res.data.status != 0) {
        return layui.layer.msg(res.data.message)
      }

      // 根据官网，为form表单赋值
      // 内置模块 -> 表单 -> 表单赋值/取值
      layui.form.val('formUserInfo', res.data.data)
    })
  }

  // 3. 重置功能
  $('#btnReset').on('click', function (e) {
    //   阻止表单默认重置行为，不给的话，点击重置，会清除三个input内容
    e.preventDefault()

    // 重新渲染表单
    initUserInfo()
  })

  // 4. 修改用户信息
  $('form').on('submit', function (e) {
    //   阻止表单默认事件
    e.preventDefault()

    //   发送ajax
    axios({
      method: 'post',
      url: '/my/userinfo',
      // 后端只接收a=1&b=2&c=3类型的数据
      data: $(this).serialize()
      // headers头信息已在公共js文件已配置
    }).then(res => {
      //成功回调
      // console.log(res.data)

      if (res.data.status != 0) {
        return layui.layer.msg(res.data.message)
      }

      //   成功提示
      layui.layer.msg('恭喜您，修改用户信息成功！')

      //  调用index页面的getUserInfo（）函数渲染头像信息
      window.parent.getUserInfo()
    })
  })
})
